package com.xnewtech.xplatform.swan.dataSourceManage.modular.modname.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xnewtech.xplatform.swan.dataSourceManage.modular.modname.entity.DmDsSource;
import com.xnewtech.xplatform.swan.dataSourceManage.modular.modname.entity.DmDsSourceEnum;
import com.xnewtech.xplatform.swan.dataSourceManage.modular.modname.model.params.DmDsSourceParam;
import com.xnewtech.xplatform.swan.dataSourceManage.modular.modname.model.result.DmDsSourceResult;
import com.xnewtech.xplatform.swan.dataSourceManage.modular.modname.model.result.TestDemoResult;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * (DmDsSource)表数据库访问层
 *
 * @author makejava
 * @since 2021-09-22 13:19:37
 */
public interface DmDsSourceMapper extends BaseMapper<DmDsSource> {
    /**
     * 新增数据源
     *
     * @param dmDsSource 实例对象
     * @return 影响行数
     */
    @Override
    int insert(DmDsSource dmDsSource);

    /**
     * 删除数数据源
     *
     * @param id 对象id
     */
    void deleteById(Long id);

    /**
     * 修改数据
     *
     * @param umDsSource 实例对象
     * @return 影响行数
     */
    int update(DmDsSource umDsSource);

    /**
     * 查询数据源
     *
     * @param dataType 数据源类型
     * @param dsName   数据源名称
     * @param pageNum  分页数
     * @param pageSize 分页大小
     * @return DmDsSource
     */
    List<Map<DmDsSource, DmDsSource>> select(@Param("dataType") DmDsSourceEnum dataType, @Param("dsName") String dsName,
                                             @Param("pageNum") Integer pageNum, @Param("pageSize") Integer pageSize);

    /**
     * 通过id批量删除数据源
     */
    Integer batchDelete(@Param("dsId") Integer[] dsId);
}

